Atmospheric effects simulation

ABSTRACT

The motion of particles such as snow is simulated in a computer generated image which represents the appearance from a predetermined viewing point of a three-dimensional worldspace through which the particles move. A three-dimensional model is defined which is made up from a regular array of abutting cubes of predetermined dimension. An object is defined which dimensions correspond to the dimensions of each cube, the object having characteristics such that it represents the motion of particles through the volume which it occupies. The three-dimensional model made up of the array of cubes is notionally positioned in worldspace such that the viewing point is located within a region of the model selected such that the field of view of particles from the viewing point is always within the model. As the viewing point travels through worldspace, it is translated in steps with the magnitude of each step corresponding to the length of any one side of the cubes. The model is moved in worldspace so as to maintain the viewing point within the selected region of the model. The image which is generated includes the model in which the object representing the moving particles occupies each of the cubes. The visibility of the cubes is faded out with distance from the viewing point so as to conceal the boundaries of the model. The model is positioned relative to the viewing point such that a notional point on a line drawn through the viewing point in a predetermined direction relative to the viewing point motion is always within a predetermined central region of the model. The distance between the notional point and the viewing point is a function of the speed of movement of the viewing point.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an apparatus and method for simulatingthe appearance of atmospheric effects such as snow in a computergenerated image.

2. Related Art

Simulators are well known which are capable of generating an image on ascreen used by for example a trainee pilot. The image is generated froma database of digital information representing for example terrain andbuildings as they appear from a viewpoint which may move relative to theterrain. The digital data thus represents a model of a worldspace andthe images are representative of the appearance of that worldspace froma particular position. Generally the model will be based on a series ofplanar polygonal objects of known geometry, position, orientation andsurface attributes. Examples of such systems are described for examplein U.S. Pat. Nos. 5,363,475 and 5,412,796. The first of these two U.S.patents describes the basic operation of an image generator in terms ofdealing with the processing of objects including light points in realtime, whereas the second deals with the simulation of atmospheric fog.

The simulation of atmospheric effects such as fog and snow is consideredto be of a real significance given the impact that such effects can haveon the ability of a pilot to monitor aircraft movements by reference tothe view from the aircraft. No realistic simulations of layered fog wereavailable until an implementation of the invention in accordance withU.S. Pat. No. 5,412,796 recently become available. Attempts to providerealistic simulations of snow have to date not been successful. Whereasfog can be represented as effects having the same characteristics over asubstantial volume of space, snow by its very nature must be representedas a series of discrete elements, and those elements cannot move in auniform manner if realism is to be achieved. Whereas in non-real timesystems any required level of detail can be produced providingsufficient computing power and time is available, this is not the casein real time systems where the computational resources available togenerate a single image are necessarily limited.

One snow simulator has been displayed which represents the appearance ofsnow falling in the vicinity of an aircraft on the ground. Individualflakes of snow were represented by light points strings of which weregenerated in a similar manner to that adopted in conventional systemsfor the simulation of the lights of moving vehicles following each otheralong a road. Effectively the snow was represented as a large number oflight points moving within a limited volume of worldspace within whichthe simulated aircraft was stationary. Although such a system wassuccessful in providing a realistic image in these limitedcircumstances, it could not provide a realistic simulation in asufficiently large volume of worldspace to enable the realisticsimulation of the appearance of snow through which an aircraft ismoving.

In an attempt to provide a realistic simulation of snow, the above modelrelying upon light points was developed by relying upon repeatingmodules of snow, each module including a set of light strings tosimulate snow flakes and each module representing a segment of athree-dimensional torus made up by an array of modules. The viewingpoint was located within a module of the torus, and the torus was movedin translation with the viewing point. The relative movement betweenindividual snow flakes and the viewing point was achieved by rotatingthe torus about its centre such that the viewing point appeared to movethrough successive modules. This approach was adopted as it enablesrelative movement between the torus and the viewing point to takeaccount of both movement of individual snow flakes in worldspace andmovement of the viewing point relative to that worldspace. In somecircumstances this arrangement provided satisfactory results, forexample when flying straight, as in those circumstances a simplerotation of the snow "torus" was able to achieve the correct movementbetween individual particle of snow and the viewing point.Unfortunately, when the aircraft executed a turn, particularly whenmoving on the ground where sharp turns are common, it was not possibleto realistically represent movement of snow across the field of viewrepresented on the viewing screen of the simulator. The snow model"turned" with the aircraft in a completely unrealistic manner. Thusalthough some systems relying upon the snow torus model described abovewere distributed, some users found them unsatisfactory.

SUMMARY OF THE INVENTION

It is an object of the present invention to obviate or mitigate theproblems outlined above.

According to the present invention, there is provided a method forsimulating the motion of particles in a computer generated imagerepresenting the appearance from a predetermined viewing point of athree-dimensional worldspace through which the particles move, wherein athree-dimensional model is defined which is made up from a regular arrayof abutting model portions of predetermined dimensions, an object isdefined the dimensions of which correspond to the dimensions of eachmodel portion, the object having characteristics such that it representsthe motion of particles through the volume which it occupies, thethree-dimensional model is notionally positioned in worldspace such thatthe viewing point is located within the model, the field of view fromthe viewing point extends through the model, and a notional point whichis in a predetermined location relative to the viewing point is within aselected region of the model, the worldspace model position istranslated in steps, the magnitude of each step corresponding to thedimensions of the portions, and the model being translated in responseto movements of the viewing point in worldspace so as to maintain thenotional point within the selected region, and an image of theworldspace including the model is generated with the object representingthe moving particles occupying each portion of the model.

The present invention also provides an apparatus for simulating themotion of particles in a computer generated image representing theappearance from a predetermined viewing point of a three-dimensionalworldspace through which the particles move, comprising means fordefining a three-dimensional model which is made up from a regular arrayof abutting model portions of predetermined dimensions, means fordefining an object the dimensions of which correspond to the dimensionsof each model portion, the object having characteristics such that itrepresents the motion of particles through the volume which itrepresents, means for notionally positioning the three-dimensional modelin worldspace such that the viewing point is located within the model,the field of view from the viewing point extends through the model, anda notional point which is in a predetermined location relative to theviewing point is within a selected region of the model, means fortranslating the worldspace model position in steps the magnitude of eachof which corresponds to the dimensions of the portions, the translatingmeans being responsive to movements of the viewing point in worldspaceso as to maintain the notional point within the selected region, andmeans for generating an image of the worldspace including the model withthe object representing the moving particles occupying each portion ofthe model.

As the viewing point will always be within the model, and that modelwill move in steps without there being any abrupt or discontinuouschange in the particle distribution in the field of view, a realisticimage may be generated. Individual regions of the model areself-similar, and therefore the fact that the model might have movedrelative to the viewing point between successive images is notperceived.

The particles may be snowflakes, raindrops or the like. The notionalpoint may be coincident with the viewing point. The distance between thenotional point and the viewing point may be a function of viewing pointspeed. Thus the notional point may be envisaged as a point located atthe end of an imaginary telescopic pole extending from the viewingpoint. In the case of simulating the view from an aircraft, theimaginary pole will extend in front of the viewing point parallel to thefore and aft axis (U-axis) of the simulated aircraft.

The model orientation is fixed in worldspace such that the model doesnot rotate with rotations of the viewing point. Individual modelportions preferably will be simple cubes within each of which there is adistribution of particles of predetermined structure. Each cube may bemade up from a series of sub-cubes each of which has a differentdistribution of particles from its neighbours.

Although the model portions or cubes are referred to as abutting, andthe model is translated in steps corresponding to the dimension of theseabutting cubes, the particle distribution represented by each cube mayextend beyond the cube boundaries so that there is overlap between theparticle distributions in adjacent cubes. This smoothes out the edges ofthe cube structure. The visibility of individual cubes may be faded outwith range to conceal the external boundaries of the model structure.

The particles may be represented by respective light points, for exampleraster or calligraphic light points. The light points may be in stringssuch that the light points of each string move in unison. Alternatively,the particles may be represented by polygons, for examples triangles.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a representation of a snow model made up of an array of cubes,the model being used in one embodiment of the present invention:

FIGS. 2 and 3 are side and plan views of the model of FIG. 1representing the notional position relative to the model of an aircraftthe view from which is to be simulated;

FIG. 4 illustrates the movement of the model through worldspace as theaircraft moves;

FIG. 5 is a plan view representing the distribution of sub-cubes in themodel of FIG. 1;

FIGS. 6, 7 and 8 are views in mutually perpendicular directionsrepresenting the positions of simulated snowflakes in one sub-cube; and

FIG. 9 represents the view from above of a layer of sixteen sub-cubesmaking up one side of a cube of the model of FIG. 1

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

FIG. 1 is a three-dimensional representation of a model made up fromseventy four cubes arranged in two layers. The model is used to simulatesnow in a simulator which generates an image of a worldspace throughwhich an aircraft flies. Assuming a worldspace co-ordinate system x, y,z as represented in FIG. 1, the model will move through worldspace inthe directions of each of the three axes but will not rotate relative tothese axes. Accordingly the edges of each cube will always be parallelto one of the three axes. Each cube portion of the model structure isoccupied by an identical object representing the movement of snow withina volume corresponding to the volume of the cube. Typically each cubewill have one hundred foot sides such that the model structure is twohundred feet high.

FIG. 2 is a side view of the model structure of FIG. 1, and FIG. 3 is aplan view of the model structure of FIG. 1. In FIGS. 2 and 3, a notionalspace 1 which is located centrally with respect to the model structurehas been outlined by a broken line. The space is a notional one hundredfoot cube half of which is located in the upper layer of cubes and halfin the lower layer of cubes.

A representation 2 of an aircraft is also shown in FIGS. 2 and 3, thebroken line 3 representing the U-axis (fore and aft axis) of theaircraft relative to the worldspace within which the model is fixed. Apoint 4 is located on the line 3 which extends from a viewing pointwhich is within the aircraft 2. The spacing between the viewing pointand the point 4 is a function of aircraft speed.

The system operates such that the model is translated through worldspaceto ensure that the point 4 is always located within the region 1. Aspart of its normal processes, the image generator calculates theworldspace coordinates of the simulated aircraft, and movements of themodel are such as to maintain the require relationship between theposition of the point 4 and the region 1. The model is translated insteps each of which is equal in length to the side dimension of each ofthe cubes. This is illustrated in FIG. 4.

Referring to FIG. 4, when the point 4 is at position 4a, the modelstructure is positioned with its corners at points 5, 6, 7 and 8. Whenthe point 4 is at position 4b, to maintain that point inside the centralarea 1 the model has been moved to a position such that its corners areat points 9, 10, 11 and 12. This effectively moves the central area ofthe model structure vertically upward by one hundred feet such that thepoint 4 remains within the central region of the structure. When thepoint 4 has reached the position 4c, the model structure has again beenmoved to maintain the point 4c within the central portion of thatstructure. As a result the model structure is in a position such thatits corners are at points 13, 14, 15 and 16. Thus is can be seen how themodel structure follows the aircraft through notional worldspace so asto always ensure that the model structure is at an appropriate positionaround the viewing point.

The spacing between the viewing point and the point 4 is adjusted independence upon aircraft speed in order to provide sufficient timeadvance to enable the processing of individual cubes of the structure bythe associated image generator. When the aircraft is stationary on theground the viewing point will be located in the central region 1, thespacing between the viewing point and the point 4 being increased to forexample two hundred feet when the aircraft is cruising. Thus the point 4is positioned as if it were mounted on the end of a telescopic poleextending parallel to the aircraft U-axis, the length of the pole beinga function of aircraft speed. Therefore the point 4 is already deadahead of the aircraft windshield.

FIG. 5 is a plan view of the structure of FIG. 1 with each of the cubesbeing represented by an array of sixteen dots. In fact each cube is madeup of a total of sixty four sub-cubes, that is four layers of sixteencubes, with each of the sub-cubes defining a different distribution ofsnow flakes. The dots shown in FIG. 5 represent the centres ofindividual sub-cubes.

FIGS. 6, 7 and 8 are views in mutually perpendicular directions of thedistribution of snow flakes in an individual sub-cube. Each triangle inFIGS. 6 to 8 represents the position of a single snowflake. Thesnowflakes are defined as strings of light points located on respectivestraight lines, five of the triangles being shaded in FIGS. 6 to 8 torepresent two strings of snow flakes, one comprising three flakes andone comprising two flakes, located on lines 17 and 18 respectively. Theflakes in each string move in unison, but the flakes in one string canmove in a different manner to the flakes in another string. Accordinglycomplex effects can be achieved.

FIG. 9 is a plan view of the top sixteen sub-cubes of one cube, with theboundaries of the cubes indicated by lines. It will be seen that thereis overlap between the light points of adjacent sub-cubes, and thereforethere will be overlap between the light points of adjacent cubes.Typically the light points of any one twenty five foot sub cube will belocated within a thirty three foot notional cube. Therefore although thecubes defining the structure of FIG. 1 abut and do not overlap, thesnowflake distributions represented by the cubes do overlap. Thisreduces the possibility of the generated image including "popping"effects, that is the sudden appearance of a representation of snow in aregion where there was previously no snow.

Each cube is broken down into an array of sub-cubes to reduce redundantprocessing. Each sub-cube will be allocated a visibility dependent uponits range from the viewing point. Accordingly any sub-cubes more thansay three hundred feet away from the viewing point will not be processedby the image generator.

The individual snowflakes are represented by techniques familiar to thedesigners of image generators which are used for simulating theappearance of moving strings of lights. A moving light string is asequence of points which continually moves along a defined path, thepoints appearing at a start point Ps and disappearing at an end pointPe. In a typical image generator the following attributes may be definedfor a light string:

a) Start and end Points in three dimensional space (Ps:Xs, Ys, Zs Pe:Xe,Ye, Ze)

b) The path of motion (straight or curved) between Ps and Pe

c) the speed of motion

d) the spatial separation or temporal interval between points

e) the intensity, colour, directionality and fade-out range of thepoints

A typical application is for simulating vehicular traffic along afreeway. In such an application the lights are modelled white and red soas to present head-lights or tail-lights depending upon orientationrelative to the viewer eye-point. In the present use of snow simulationthe lights are used to represent falling particles (e.g. snow flakes)that move along a given trajectory, appearing at the ceiling height ofthe cube structure and disappearing at the floor height. Theiromni-directional intensity is controlled to represent ambient oraircraft landing light illumination.

The image generator maintains a centralised real-time clock "T₋₋ abs"that tracks true elapsed time. All moving string processing refers backto this datum such that multiple copies of a single object will behavein an identical manner. Furthermore each channel of a multi-channelimage generator will have access to T₋₋ abs to guarantee absolutesynchronism in string processing across channels.

The following description covers the simplest case of a singleomni-directional light on a straight line path. Similar techniques existfor multiple points or curved paths.

    ______________________________________                                        Attribute data:                                                                 Start point Ps (Xs. Ys. Zs) ft                                                End point Pe (Xe. Ye. Ze) ft                                                  Point speed V ft/sec                                                          Deduced data:                                                                 Line Length L (computed from Pe - Ps) ft                                      Point Interval P (computed from L/V) sec                                      Variables:                                                                    Current string time T.sub.-- string sec                                     ______________________________________                                    

The following calculations are conducted each image generator updateframe: The current T₋₋ string is computed from the string interval P andT₋₋ abs.

    T.sub.-- string=MOD(T.sub.-- abs,P)

where MOD is the modulus operator that produces the remainder of thequotient T₋₋ abs/P (zero results when there is an exact division withouta remainder).

The line ratiometric position r is computed from:

    r=T.sub.-- string/P

where r increases linearly from 0.0 (at Ps) to 1.0 (at Pe).

The current position Pp on the line path is given by:

    Pp=Ps+r*(Pe-Ps)

i.e.

    Xp=Xs+r*(Xe-Xs)

    Yp=Ys+r*(Ye-Ys)

    Zp=Zs+r*(Ze-Zs)

The Pp coordinates then undergo standard graphics perspective divide,clipping and scaling to create a point in two dimensional screen space.The fade-range attribute is used to determine when points become too dimto perceive and may be discarded from the display.

The point may be displayed as a raster light point or a calligraphiclight point depending upon the image generator and display capability.Generally raster light points will be displayed, as the high qualityachievable with calligraphic light points is not required for theemulation of snow. A series of light strings each generated as describedabove is produced for each sub-cube to produce a distribution such as isillustrated in FIGS. 6 to 8. The sixty four sub-cubes together define acube which is repeated in each cube making up the model structure shownin FIG. 1. The image generator processes each sub-cube within range justas it processes any object within worldspace to produce the requiredimage information. Thus multiple copies of each sub-cube are produced,one being used in each cube. These multiple copies behave in exactsynchronism, even across channels of a multi-channel image generator.This allows the image generator to "jump" into any repeat of the snowstructure without any discontinuities being discernible.

Any convenient approach may be adopted to generate a set of stringssuitable for use in a individual sub-cube. For example, a simple programcan be written to generate a randomised series of strings, the programrelying upon for example a random seed to ensure differences betweensuccessively generated sub-cubes, ranges for the boundaries of thesub-cube within which all the sub-cube light points must be located (toprovide for variable overlap between adjacent sub-cubes), a selectednumber of light points, a range of acceptable angles of the lightstrings, a range of intervals between light points in individualstrings, and range of speeds for the light points. Thus highly complexand irregular patterns can be readily developed.

The image generator host software stores details of the snow effectswhich are to be represented, and performs the necessary computations tointegrate the snow with the other features of the represented scene. Thecomputational processes are conventional and may for example follow theprocedures such as described in U.S. Pat. No. 5,363,475. Details aregiven below however of particular computations which are necessary toprovide information specific to the snow simulations.

As is conventional, aircraft space, that is the space in a coordinatesystem having its origin at the aircraft centre of gravity, isrepresented as (U,V,W). Velocities UA, VA and WA represent the motion ofa snow particle relative to the aircraft due to the combined effects ofair speed, wind speed and turbulence. These velocities are relative tothe aircraft axes U, V and W and are with respect to the aircraft centreof gravity. A flight freeze function may be available, and when this isinvoked the snow particle motion will be the result of wind speed andturbulence only.

These snow particle velocity components are multiplied by the frameperiod TIME (which may be variable) to create a display screen vectorSNPU, SNPV and SNPW representing the distance moved since the previousimage generation cycle. This displacement vector is rotated fromaircraft axes to worldspace axes to create a delta distance moved inworldspace using a rotation matrix as follows to create the snowparticle position:

    Snow particle Northing SNPNG=SNPNG+(SNPU*BE11+SNPV*BE21+SNPW*BE31)

    Snow particle Easting SNPEG=SNPEG+(SNPU*BE12+SNPV*BE22+SNPW*BE32)

    Snow particle height SNPHD=SNPHD+(SNPU*BE13+SNPV*BE23+SNPW*BE33)

The above rotation matrix is conventional, as is the notation used torepresent that matrix.

The point which is represented as point 4 in FIG. 2, 3, and 4 and islocated on a line drawn in the U-axis direction through the eye point isreferred to hereafter as the centring point. The centring point isprojected ahead of the eyepoint at a distance of from zero to twohundred feet in dependence upon VT which represents the true air speed.At low speeds the centring point is near the eye point but extends aheadaway from the eyepoint with increasing speed until a limiting speedSNVLK is reached. SNVRG is the linear speed ratio gain, that is theratio of the true air speed to the limiting speed limited to a maximumof unity.

To calculate the height displacement from the aircraft origin of thecentring point the following transformation is performed;

    ______________________________________                                        SFPHD =    (PEXAC + (SNFPX*SNVRG)                                                                            )*BE13 +                                          (PEYAC )* BE23 +                                                              (PEZAC )* BE33                                                             ______________________________________                                    

SFPHD represents the centring point height displacement in world spacerelative to the aircraft. The pilots eye position in aircraft space isrepresented by PEXAC, PEYAC, and PEZAC. The centring point displacementalong the aircraft U-axis is given by (SNFPX*SNVRG), where SNFPX is themaximum distance of the centring point from the eye and SNVRG is thelinear velocity ratio gain. The rotation into worldspace is given byBE13, BE23 and BE33. Similar calculations are made in respect ofNorthing and Easting.

The centring point components are then compared with SNPNG. SNPEG andSNPHD and the cube repeat dimension (one hundred feet) is added orsubtracted until the central portion of the cube structure is positionedover the centring point. Hysteresis is present in this mechanism so asto prevent potential oscillatory behaviour. This is achieved in respectof the height dimension as follows;

    DO WHILE(SNPHD·GT·(SFPHD+SNRHY))

    SNPHD=SNPHD-SNR

    END DO

    DO WHILE(SNPHD·LT·(SFPHD-SNRHY))

    SNPHD=SNPHD+SNR

    END DO

In the above, SNR is the dimension of each cube in the structure (onehundred feet), SNRHY is SNR/2+5% to provide the hysteresis to stoposcillatory switching.

Thus the necessary information required for correctly positioning thesnow structure relative to the viewing point may be readily achieved.

The centring point is close to the eye when performing ground handlingtasks as this ensures that rapid or large heading changes are possiblewithin the cube structure without unnecessary cube jumping. The centringpoint is however for example two hundred feet ahead of the eye whencruising. This provides the image generator with sufficient feed-forwardor time advance to process snow cubes prior to the three hundred footvisibility range. It should be noted that the dynamic extension of thedistance between the eyepoint and the centring point only controls theposition of the cube structure relative to the eyepoint and does notitself impart any perceivable cue.

Because the cube structure has fixed Euler angles and thus does notrotate relative to worldspace, when the eye rotates about the centre ofgravity the snow behaves as any other earth aligned model.

Although the foregoing description has implied that the snow is movedrelative to the eye, in fact it becomes apparent that the snow islargely stationary relative to worldspace and the aircraft normally isflying though the cube structure which jumps one hundred feet asrequired to maintain immersion of the eyepoint. In theory the only earthrelative motion is produced by the wind component, which isinsignificant at higher air speeds.

Thus a very realistic display can be achieved giving the impression thatthe eye point is moving through the simulated snow, enabling windconditions to affect the generated image, and maintaining theappropriate cubes with regards to both translation and rotation.

In summary, the present invention provides the following features:

1. The simulated vehicle appears to move through the model and aseamless visual flow of particles is perceived.

2. Correct translation axes are obtained for all vehicle motion.

3. Correct rotation axes are obtained for all vehicle motion.

4. Correct axes are obtained for the effects of wind, both steady andgusting.

What is claimed is:
 1. A method for simulating the motion of particles in a computer generated image representing the appearance from a predetermined viewing point of a three dimensional worldspace through which the particles move, wherein a three dimensional model is defined which is made up from a regular array of abutting model portions of predetermined dimensions, an object is defined the dimensions of which correspond to the dimensions of each model portion, the object having characteristics such that the object represents the motion of particles through the volume which the object occupies, the three dimensional model is notionally positioned in worldspace such that the viewing point is located within the model, the field of view from the viewing point extends through the model, and a notional point which is in a predetermined location relative to the viewing point is within a selected region of the model, the worldspace model position is translated in steps, the magnitude of each step corresponding to the dimensions of the portions, and the model being translated in response to movements of the viewing point in worldspace so as to maintain the notional point within the selected region, and an image of the worldspace including the model is generated with the object representing the moving particles occupying each portion of the model.
 2. A method as in claim 1, wherein the notional point is coincident with the viewing point.
 3. A method as in claim 2, wherein the pre-determined region of the model is located centrally relative to the model.
 4. A method according to claim 2, wherein the notional point is located on a line which extends from the viewing point in a predetermined direction, the distance between the notional point and the viewing point being a function of the speed of the viewing point.
 5. A method as in claim 1, wherein the model is defined as an array of cubes in each of which there is a distribution of particles such that each cube is self similar.
 6. A method as in claim 5, wherein each cube is made up from a series of sub-cubes each of which has a different distribution of particles within it.
 7. A method as in claim 5, wherein the particles of adjacent cubes overlap.
 8. A method as in claim 5, wherein the visibility of individual cubes is faded out with range from the viewing point such that boundaries of the cube structure are concealed.
 9. A method as in claim 1, wherein the particles are represented by respective light points.
 10. A method as in claim 9, wherein the particles are represented by raster light points.
 11. A method as in claim 9, wherein the particles are represented by calligraphic light points.
 12. A method as in claim 10, wherein the particles are represented by strings of light points which move together in a predetermined manner.
 13. A method as in claim 1, wherein the particles are represented by respective polygons.
 14. An apparatus for simulating the motion of particles in a computer generated image representing the appearance from a predetermined viewing point of a three-dimensional worldspace through which the particles move, comprising:means for defining a three-dimensional model which is made up from a regular array of abutting model portions of predetermined dimensions, means for defining an object the dimensions of which correspond to the dimensions of each model portion, the object having characteristics such that the object represents the motion of particles through the volume which the object represents, means for notionally positioning the three-dimensional model in worldspace such that the viewing point is located within the model, the field of view from the viewing point the model and a notional point which is in a predetermined location relative to the viewing point is within a selected region of the model, means for translating the worldspace model position in steps the magnitude of each step corresponding to a respectively corresponding one the predetermined dimensions of the model portions, the translating means being responsive to movements of the viewing point in worldspace so as to maintain the notional point within the selected region, and means for generating an image of the worldspace including the model with the object representing the moving particles occupying each portion of the model. 